﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ВидыИмущества
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"13437ca3-1abb-42ed-8e45-b3f094504e9c\", \"Представление\":\"ОсобенностиОтсутствуют\"}")]
		ОсобенностиОтсутствуют = 0,//Особенности отсутствуют
		[EnumMember(Value = "{\"Ссылка\":\"e7a33790-931a-440d-93bc-2e97d7ef041f\", \"Представление\":\"ВходитВСоставЕСГС\"}")]
		ВходитВСоставЕСГС = 1,//Входит в состав единой системы газоснабжения (ЕСГС) 
		[EnumMember(Value = "{\"Ссылка\":\"7925eedb-5b25-49a6-9df9-a9910a9a4966\", \"Представление\":\"ИспользуетсяВОЭЗКалининградскойОбласти\"}")]
		ИспользуетсяВОЭЗКалининградскойОбласти = 2,//Используется в Особой экономической зоне в Калининградской области
		[EnumMember(Value = "{\"Ссылка\":\"f308cab4-5e44-48e7-b6b0-3da2bedd9c4e\", \"Представление\":\"НаходитсяНаТерриторииДругогоГосударства\"}")]
		НаходитсяНаТерриторииДругогоГосударства = 3,//Находится на территории другого государства
	}
	public static partial class ВидыИмущества_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ОсобенностиОтсутствуют = new Guid("f0b3458e-5094-9c4e-42ed-1abb13437ca3");//Особенности отсутствуют
		public static readonly Guid ВходитВСоставЕСГС = new Guid("972ebc93-efd7-1f04-440d-931ae7a33790");//Входит в состав единой системы газоснабжения (ЕСГС) 
		public static readonly Guid ИспользуетсяВОЭЗКалининградскойОбласти = new Guid("91a9f99d-9a0a-6649-49a6-5b257925eedb");//Используется в Особой экономической зоне в Калининградской области
		public static readonly Guid НаходитсяНаТерриторииДругогоГосударства = new Guid("a23db0b6-ddbe-4e9c-48e7-5e44f308cab4");//Находится на территории другого государства
		public static ВидыИмущества Получить(this ВидыИмущества Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыИмущества Получить(this ВидыИмущества Значение, Guid Ссылка)
		{
			if(Ссылка == ОсобенностиОтсутствуют)
			{
				return ВидыИмущества.ОсобенностиОтсутствуют;
			}
			else if(Ссылка == ВходитВСоставЕСГС)
			{
				return ВидыИмущества.ВходитВСоставЕСГС;
			}
			else if(Ссылка == ИспользуетсяВОЭЗКалининградскойОбласти)
			{
				return ВидыИмущества.ИспользуетсяВОЭЗКалининградскойОбласти;
			}
			else if(Ссылка == НаходитсяНаТерриторииДругогоГосударства)
			{
				return ВидыИмущества.НаходитсяНаТерриторииДругогоГосударства;
			}
			return ВидыИмущества.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыИмущества Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыИмущества Значение)
		{
			switch (Значение)
			{
				case ВидыИмущества.ОсобенностиОтсутствуют: return ОсобенностиОтсутствуют;
				case ВидыИмущества.ВходитВСоставЕСГС: return ВходитВСоставЕСГС;
				case ВидыИмущества.ИспользуетсяВОЭЗКалининградскойОбласти: return ИспользуетсяВОЭЗКалининградскойОбласти;
				case ВидыИмущества.НаходитсяНаТерриторииДругогоГосударства: return НаходитсяНаТерриторииДругогоГосударства;
			}
			return Guid.Empty;
		}
	}
}